package com.heiye.comment.biz.service;

import com.heiye.comment.biz.model.vo.*;
import com.heiye.framework.common.response.PageResponse;
import com.heiye.framework.common.response.Response;

/**
 * @author: heiye
 * @date: 2025/07/24 下午3:26
 * @version: v1.0.0
 * @description: 评论业务
 */
public interface CommentService {
    /**
     * 发布评论
     *
     * @param publishCommentReqVO
     * @return
     */
    Response<?> publishComment(PublishCommentReqVO publishCommentReqVO);

    /**
     * 评论列表游标分页查询
     *
     * @param findCommentCursorPageListReqVO
     * @return
     */
    Response<FindCommentCursorPageListRspVO> findCommentPageList(FindCommentCursorPageListReqVO findCommentCursorPageListReqVO);

    /**
     * 评论点赞
     *
     * @param likeCommentReqVO
     * @return
     */
    Response<?> likeComment(LikeCommentReqVO likeCommentReqVO);

    /**
     * 取消评论点赞
     *
     * @param unLikeCommentReqVO
     * @return
     */
    Response<?> unlikeComment(UnLikeCommentReqVO unLikeCommentReqVO);

    /**
     * 删除评论
     *
     * @param deleteCommentReqVO
     * @return
     */
    Response<?> deleteComment(DeleteCommentReqVO deleteCommentReqVO);

    /**
     * 设置评论为最佳
     *
     * @param bestCommentReqVO
     * @return
     */
    Response<?> bestComment(BestCommentReqVO bestCommentReqVO);

    /**
     * 取消评论为最佳
     *
     * @param cancelBestCommentReqVO
     * @return
     */
    Response<?> cancelBestComment(CancelBestCommentReqVO cancelBestCommentReqVO);

    /**
     * 删除本地评论缓存
     *
     * @param commentId
     */
    void deleteCommentLocalCache(Long commentId);
}
